package com.xhsj.user.hr.process.processDefinition.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xhsj.user.hr.process.processDefinition.entity.TbGlobalApprovalTask;
import com.xhsj.user.hr.process.processDefinition.query.HrMessageQuery;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 流程-任务审核表 Mapper 接口
 * </p>
 *
 * @author liuqinghua
 * @since 2020-08-31
 */
@Mapper
public interface TbGlobalApprovalTaskMapper extends BaseMapper<TbGlobalApprovalTask> {

    // 删除正在执行任务
    int deleteTaskById(@Param("processTaskId") Long processTaskId);

    /**
     * 删除正在执行任务
     * @author 苏小林
     * @date 2021/6/2 15:49
     * @param: businessId
     * @param: id
     */
    void delTaskByBusinessIdAndDataId(@Param("businessId") Long businessId, @Param("dataId") Long id);

    /**
     * 首页hr系统管理消息
     * @author liuqinghua
     * @date Aug 31, 2020 4:15:14 PM
     */
    IPage<HrMessageQuery> getHrMessage(Page<HrMessageQuery> page,@Param("userId") Long userId,
                                       @Param("roleList") List<Long> roleList);

    /**
     * 首页hr系统管理消息待办
     * @author liuqinghua
     * @date Aug 31, 2020 4:15:14 PM
     */
    IPage<HrMessageQuery> getHrMessageCommission(Page<HrMessageQuery> page);

    /**
     * 首页hr系统管理消息代办数
     * @author liuqinghua
     * @date Aug 31, 2020 4:15:14 PM
     */
    Integer getHrMessageCommissionNum();

    /**
     * 首页hr系统管理消息审核数
     * @author liuqinghua
     * @date Aug 31, 2020 4:15:14 PM
     */
    Integer getHrMessageNum(@Param("userId") Long userId,
                            @Param("roleList") List<Long> roleList);

    Map<String, Object> getJudge(@Param("businessId") Long businessId, @Param("nodeId") Long nodeId);

    /**
     * 判断是否有正在执行的流程
     * @param businessId
     * liuqinghua
     */
    List<Long> getRunTask(@Param("businessId")  Long businessId);

    /**
     * 首页hr系统管理不分页
     * @author liuqinghua
     * @date Aug 31, 2020 4:15:14 PM
     */
    List<HrMessageQuery> getHrMessageCommissionNotPage();

    /**
     * 删除历史任务
     * @author 苏小林
     * @date 2021/2/26 14:44
     * @param: businessId
     * @param: dataId
     */
    void delHisTask(@Param("businessId") Long businessId, @Param("dataId") Long dataId);


}
